#ifndef _GPIOCLUB_RTC_H_
#define _GPIOCLUB_RTC_H_

typedef struct clock_param
{
    uint16_t year;
    uint8_t month;
    uint8_t day;
    uint8_t hour;
    uint8_t min;
    uint8_t sec;
    uint8_t week;
    uint8_t flag; //1有效，0无效
} clock_param_t;

extern clock_param_t clock_env;

#define CALULATE_TIME_TICK(hour, min, sec) (hour * 3600 + min * 60 + sec)

void show_clock_func(void);
int get_days(int, int, int);        //返回从公元元年算起，某年某月某日是第几天， 用这个数字算星期几
int days_of_year(int, int, int);    //返回某年某月某日是当前年份第几天
int days_of_month(int, int);        //返还某年某月有几天
int day_of_week(int, int, int);     //返回某年某月某日是星期几，星期天返回0
bool is_leap_year(int);             //返回当前年份是否为闰年
void print_date_of_month(int, int); // 打印某年某月的日历

void RTC_Rejuge(struct tm *time);
void RTC_Clock_hdl(void);

#endif
